home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / dev / m2 / Turbo_1.lha / modula / ansi-c / String.def < prev    next >
Text File  |  1994-11-08  |  3KB  |  80 lines

  1. DEFINITION FOR C MODULE String ;
  2.  
  3. (*----------------------------------------------------------------------------*)
  4. (* Parameter names prefixed with c ( cs or ct ) imply that the function does  *)
  5. (* not modify the parameter.                              *)
  6. (* NB:Lazer M2 has a built in SYSTEM.STRING type , which is compatible        *)
  7. (* with both character arrays and "string" contants, so you can pass a string *)
  8. (* constant or character array to any STRING formal parameter.              *)
  9. (* Also function procedures in a "FOR C" definition module can be treated as  *)
  10. (* proper procedures IOWs its possible to ignore the result type from funtions*)
  11. (* like strcat & printf etc.                              *)
  12. (*----------------------------------------------------------------------------*)
  13.  
  14. FROM SYSTEM IMPORT ADDRESS , STRING ;
  15.  
  16. PROCEDURE strlen( cs : STRING ) : LONGINT ;
  17. (* returns length of cs *)
  18.  
  19. PROCEDURE strcmp( cs , ct : STRING ) : LONGINT ;
  20. (* compare cs to ct, returns <0 if cs<ct ,0 if cs=ct ,>0 otherwise *)
  21.  
  22. PROCEDURE strncmp( cs , ct : STRING ; n : LONGINT ) : LONGINT ;
  23. (* compare at most n characters of cs to ct , result as strcmp *)
  24.  
  25. PROCEDURE strcat( s , ct : STRING ) : STRING ;
  26. (* concatenate ct to end of s , returns s *)
  27.  
  28. PROCEDURE strncat( s , ct : STRING ; n : LONGINT ) : STRING ;
  29. (* concatenate at most n characters of ct to end of s , terminate *)
  30. (* s with 0C , returns s.                      *)
  31.  
  32. PROCEDURE strcpy( s , ct : STRING ) : STRING ;
  33. (* copy ct to s including null terminator , returns s *)
  34.  
  35. PROCEDURE strncpy( s , ct : STRING ; n : LONGINT ) : STRING ;
  36. (* copy first n characters of ct to s , pads with 0C's if t has fewer chars *)
  37. (* than n.                                     *)
  38.  
  39. PROCEDURE strerror( i : LONGINT ) : STRING ;
  40. (* string corresponding to error number i see errno.def *)
  41.  
  42. PROCEDURE strchr( cs : STRING ; c : CHAR ) : STRING ;
  43. (* pointer to first occurrence of c in s , NIL if not found *)
  44.  
  45. PROCEDURE strrchr( cs : STRING ; c : CHAR ) : STRING ;
  46. (* pointer to last occurrence of c in s , NIL if not found *)
  47.  
  48. PROCEDURE strspn( cs , ct : STRING ) : LONGINT ;
  49. (* length of prefix of cs consisting of characters in ct *)
  50.  
  51. PROCEDURE strcspn( cs , ct : STRING ) : LONGINT ;
  52. (* length of prefix of cs consisting of characters NOT in ct *)
  53.  
  54. PROCEDURE strpbrk( cs , ct : STRING ) : STRING ;
  55. (* return pointer to first occurrence in cs of any character of ct, NIL if no *)
  56. (* occurrence *)
  57.  
  58. PROCEDURE strstr( cs , ct : STRING ) : STRING ;
  59. (* pointer to first occurrence of ct in cs , NIL if not found *)
  60.  
  61. PROCEDURE strtok( s , ct  : STRING ) : STRING ;
  62. (* no time to describe this one , see any good ANSI-C book *)
  63.  
  64. PROCEDURE memcmp ( cs , ct : ADDRESS ; n : LONGINT ) : LONGINT ;
  65. (* compare at most n bytes of cs to ct , result as strcmp (above) *)
  66.  
  67. PROCEDURE memcpy ( s , ct : ADDRESS ; n : LONGINT ) : ADDRESS ;
  68. (* copy n bytes from ct to s , returns s *)
  69.  
  70. PROCEDURE memmove( s , ct : ADDRESS ; n : LONGINT ): ADDRESS ;
  71. (* as memcpy but s & ct can overlap *)
  72.  
  73. PROCEDURE memset( s : ADDRESS ; b : CHAR ; n : LONGINT ) : ADDRESS ;
  74. (* place b into first n locations of s , returns s *)
  75.  
  76. PROCEDURE memchr( cs : ADDRESS ; b : CHAR ; n : LONGINT ) : ADDRESS ;
  77. (* return pointer to the first occurrence of b in cs, or NIL if not found *)
  78.  
  79. END String.
  80.